﻿using MugenInjection.Syntax.Type;

namespace MugenInjection.Interception.Syntax
{
    public interface IInterceptTypeSyntax : IInterceptSyntax,
                                            ITypeCallbackConstructorObjectPriorityScopeUseWhenWithSyntax,
                                            ITypeCallbackConstructorObjectPriorityScopeUseWithSyntax,
                                            ITypeCallbackObjectUseWithSyntax,
                                            ITypeCallbackObjectPriorityUseWithSyntax,
                                            ITypeCallbackConstructorObjectPriorityUseWithSyntax,
                                            IInterceptAsTargetTypeSyntax
    {
    }

    public interface IInterceptTypeSyntax<T> : IInterceptSyntax<T>,
                                               ITypeCallbackConstructorObjectPriorityScopeUseWhenWithSyntax<T>,
                                               ITypeCallbackConstructorObjectPriorityScopeUseWithSyntax<T>,
                                               ITypeCallbackConstructorObjectPriorityUseWithSyntax<T>,
                                               ITypeCallbackObjectPriorityUseWithSyntax<T>,
                                               ITypeCallbackObjectUseWithSyntax<T>,
                                               IInterceptAsTargetTypeSyntax<T>
    {
    }
}